﻿Imports System.Resources
Imports System.Threading
Imports Biz
Imports BLL


Public Class ctrlListaTiposEntrevista

    Private _llamador As frmMainMetro
    Private _ctrlNuevoTipoEntrevista As ctrlNuevoTipo_Entrevista
    Private _RM As ResourceManager


    Public Sub SetIdioma()

        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        btnNuevo.Text = _RM.GetString("btnNuevo")
        btnEditar.Text = _RM.GetString("btnEditar")
        btnEliminar.Text = _RM.GetString("btnEliminar")

        SetAyudaContextual()

    End Sub

    Public Property Llamador() As frmMainMetro
        Get
            Return _llamador
        End Get
        Set(value As frmMainMetro)
            _llamador = value
        End Set
    End Property


    Public Sub CargarGrilla()
        Dim oTipoEntrevista As cTipo_Entrevista
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node


        advTreeTiposentrevista.BeginUpdate()

        advTreeTiposentrevista.Nodes.Clear()

        Try
            colObjetos = GestorTipo_Entrevista.Instance.Consultar

            If Not colObjetos Is Nothing Then

                For Each oTipoEntrevista In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oTipoEntrevista.TEnt_Codigo
                    oNode.Text = oTipoEntrevista.TEnt_Codigo
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oTipoEntrevista.TEnt_Descrip))

                    advTreeTiposentrevista.Nodes.Add(oNode)

                Next
            End If

        Catch ex As Excepciones.Tipo_EntrevistaFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        advTreeTiposentrevista.EndUpdate()

        advTreeTiposentrevista.Refresh()

    End Sub

    Private Sub btnEliminar_Click(sender As Object, e As EventArgs) Handles btnEliminar.Click
        Dim oAux As cTipo_Entrevista = New cTipo_Entrevista

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionTiposEntrevista)) Then
                frmMainMetro.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreeTiposentrevista.SelectedNode Is Nothing Then
                If MessageBox.Show("Confirma la eliminación del registro?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                    oAux.TEnt_Codigo = Utils.Convert.ToInt16(advTreeTiposentrevista.SelectedNode.Tag)

                    Try
                        GestorTipo_Entrevista.Instance.Eliminar(oAux)
                        GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.TipoEntrevistaBaja))

                        _llamador.RefrescarGrillas()

                    Catch ex As Excepciones.Tipo_EntrevistaFalloBaja
                        Main.ManejarExcepcion(ex)
                    Catch ex As Exception
                        Main.ManejarExcepcion(ex)
                    End Try
                End If
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnNuevo_Click(sender As Object, e As EventArgs) Handles btnNuevo.Click

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionTiposEntrevista)) Then
                frmMainMetro.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            _llamador._ctrlNuevoTipo_Entrevista.MostrarParaAlta()
            _llamador.ShowModalPanel(_llamador._ctrlNuevoTipo_Entrevista, DevComponents.DotNetBar.Controls.eSlideSide.Left)


        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnEditar_Click(sender As Object, e As EventArgs) Handles btnEditar.Click
        Dim oAux As cTipo_Entrevista

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionTiposEntrevista)) Then
                frmMainMetro.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreeTiposentrevista.SelectedNode Is Nothing Then
                Try
                    oAux = New cTipo_Entrevista
                    oAux.TEnt_Codigo = advTreeTiposentrevista.SelectedNode.Tag
                    oAux = GestorTipo_Entrevista.Instance.Buscar(oAux)

                    _llamador._ctrlNuevoTipo_Entrevista.MostrarParaEdicion(oAux)
                    _llamador.ShowModalPanel(_llamador._ctrlNuevoTipo_Entrevista, DevComponents.DotNetBar.Controls.eSlideSide.Left)

                Catch ex As Excepciones.Tipo_EntrevistaFalloBuscar
                    Main.ManejarExcepcion(ex)
                Catch ex As Exception
                    Main.ManejarExcepcion(ex)
                End Try
            End If


        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try
    End Sub

    Public Sub SetAyudaContextual()
        _RM = New ResourceManager("UI.AyudaContextual", System.Reflection.Assembly.GetExecutingAssembly)

        HelpProviderForm.SetHelpString(advTreeTiposentrevista, "Lista de tipos de entrevistas utilizados")

    End Sub

    Public Sub Inicializar()

        CargarGrilla()
        SetAyudaContextual()

    End Sub

End Class
